{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Reading Data into Pandas"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"# conventional way to import pandas\n",
"import pandas as pd "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Read CSV"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [],
"source": [
"# read data from csv file \n",
"corona = pd.read_csv(\"../data/covid-19_cleaned_data.csv\")"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Province/State | \n",
" Country/Region | \n",
" Lat | \n",
" Long | \n",
" Date | \n",
" Confirmed | \n",
" Deaths | \n",
" Recovered | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" Thailand | \n",
" Thailand | \n",
" 15.0000 | \n",
" 101.0000 | \n",
" 2020-01-22 | \n",
" 2 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 1 | \n",
" Japan | \n",
" Japan | \n",
" 36.0000 | \n",
" 138.0000 | \n",
" 2020-01-22 | \n",
" 2 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 2 | \n",
" Singapore | \n",
" Singapore | \n",
" 1.2833 | \n",
" 103.8333 | \n",
" 2020-01-22 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 3 | \n",
" Nepal | \n",
" Nepal | \n",
" 28.1667 | \n",
" 84.2500 | \n",
" 2020-01-22 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 4 | \n",
" Malaysia | \n",
" Malaysia | \n",
" 2.5000 | \n",
" 112.5000 | \n",
" 2020-01-22 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Province/State Country/Region Lat Long Date Confirmed \\\n",
"0 Thailand Thailand 15.0000 101.0000 2020-01-22 2 \n",
"1 Japan Japan 36.0000 138.0000 2020-01-22 2 \n",
"2 Singapore Singapore 1.2833 103.8333 2020-01-22 0 \n",
"3 Nepal Nepal 28.1667 84.2500 2020-01-22 0 \n",
"4 Malaysia Malaysia 2.5000 112.5000 2020-01-22 0 \n",
"\n",
" Deaths Recovered \n",
"0 0 0 \n",
"1 0 0 \n",
"2 0 0 \n",
"3 0 0 \n",
"4 0 0 "
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Examine first few rows \n",
"corona.head() "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Read Excel Sheet"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [],
"source": [
"# read data from excel file \n",
"movies = pd.read_excel(\"../data/movies.xls\")"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Title | \n",
" Year | \n",
" Genres | \n",
" Language | \n",
" Country | \n",
" Content Rating | \n",
" Duration | \n",
" Aspect Ratio | \n",
" Budget | \n",
" Gross Earnings | \n",
" ... | \n",
" Facebook Likes - Actor 1 | \n",
" Facebook Likes - Actor 2 | \n",
" Facebook Likes - Actor 3 | \n",
" Facebook Likes - cast Total | \n",
" Facebook likes - Movie | \n",
" Facenumber in posters | \n",
" User Votes | \n",
" Reviews by Users | \n",
" Reviews by Crtiics | \n",
" IMDB Score | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" Intolerance: Love's Struggle Throughout the Ages | \n",
" 1916 | \n",
" Drama|History|War | \n",
" NaN | \n",
" USA | \n",
" Not Rated | \n",
" 123 | \n",
" 1.33 | \n",
" 385907.0 | \n",
" NaN | \n",
" ... | \n",
" 436 | \n",
" 22 | \n",
" 9.0 | \n",
" 481 | \n",
" 691 | \n",
" 1 | \n",
" 10718 | \n",
" 88 | \n",
" 69.0 | \n",
" 8.0 | \n",
"
\n",
" \n",
" 1 | \n",
" Over the Hill to the Poorhouse | \n",
" 1920 | \n",
" Crime|Drama | \n",
" NaN | \n",
" USA | \n",
" NaN | \n",
" 110 | \n",
" 1.33 | \n",
" 100000.0 | \n",
" 3000000.0 | \n",
" ... | \n",
" 2 | \n",
" 2 | \n",
" 0.0 | \n",
" 4 | \n",
" 0 | \n",
" 1 | \n",
" 5 | \n",
" 1 | \n",
" 1.0 | \n",
" 4.8 | \n",
"
\n",
" \n",
" 2 | \n",
" The Big Parade | \n",
" 1925 | \n",
" Drama|Romance|War | \n",
" NaN | \n",
" USA | \n",
" Not Rated | \n",
" 151 | \n",
" 1.33 | \n",
" 245000.0 | \n",
" NaN | \n",
" ... | \n",
" 81 | \n",
" 12 | \n",
" 6.0 | \n",
" 108 | \n",
" 226 | \n",
" 0 | \n",
" 4849 | \n",
" 45 | \n",
" 48.0 | \n",
" 8.3 | \n",
"
\n",
" \n",
" 3 | \n",
" Metropolis | \n",
" 1927 | \n",
" Drama|Sci-Fi | \n",
" German | \n",
" Germany | \n",
" Not Rated | \n",
" 145 | \n",
" 1.33 | \n",
" 6000000.0 | \n",
" 26435.0 | \n",
" ... | \n",
" 136 | \n",
" 23 | \n",
" 18.0 | \n",
" 203 | \n",
" 12000 | \n",
" 1 | \n",
" 111841 | \n",
" 413 | \n",
" 260.0 | \n",
" 8.3 | \n",
"
\n",
" \n",
" 4 | \n",
" Pandora's Box | \n",
" 1929 | \n",
" Crime|Drama|Romance | \n",
" German | \n",
" Germany | \n",
" Not Rated | \n",
" 110 | \n",
" 1.33 | \n",
" NaN | \n",
" 9950.0 | \n",
" ... | \n",
" 426 | \n",
" 20 | \n",
" 3.0 | \n",
" 455 | \n",
" 926 | \n",
" 1 | \n",
" 7431 | \n",
" 84 | \n",
" 71.0 | \n",
" 8.0 | \n",
"
\n",
" \n",
"
\n",
"
5 rows × 25 columns
\n",
"
"
],
"text/plain": [
" Title Year \\\n",
"0 Intolerance: Love's Struggle Throughout the Ages 1916 \n",
"1 Over the Hill to the Poorhouse 1920 \n",
"2 The Big Parade 1925 \n",
"3 Metropolis 1927 \n",
"4 Pandora's Box 1929 \n",
"\n",
" Genres Language Country Content Rating Duration \\\n",
"0 Drama|History|War NaN USA Not Rated 123 \n",
"1 Crime|Drama NaN USA NaN 110 \n",
"2 Drama|Romance|War NaN USA Not Rated 151 \n",
"3 Drama|Sci-Fi German Germany Not Rated 145 \n",
"4 Crime|Drama|Romance German Germany Not Rated 110 \n",
"\n",
" Aspect Ratio Budget Gross Earnings ... Facebook Likes - Actor 1 \\\n",
"0 1.33 385907.0 NaN ... 436 \n",
"1 1.33 100000.0 3000000.0 ... 2 \n",
"2 1.33 245000.0 NaN ... 81 \n",
"3 1.33 6000000.0 26435.0 ... 136 \n",
"4 1.33 NaN 9950.0 ... 426 \n",
"\n",
" Facebook Likes - Actor 2 Facebook Likes - Actor 3 \\\n",
"0 22 9.0 \n",
"1 2 0.0 \n",
"2 12 6.0 \n",
"3 23 18.0 \n",
"4 20 3.0 \n",
"\n",
" Facebook Likes - cast Total Facebook likes - Movie Facenumber in posters \\\n",
"0 481 691 1 \n",
"1 4 0 1 \n",
"2 108 226 0 \n",
"3 203 12000 1 \n",
"4 455 926 1 \n",
"\n",
" User Votes Reviews by Users Reviews by Crtiics IMDB Score \n",
"0 10718 88 69.0 8.0 \n",
"1 5 1 1.0 4.8 \n",
"2 4849 45 48.0 8.3 \n",
"3 111841 413 260.0 8.3 \n",
"4 7431 84 71.0 8.0 \n",
"\n",
"[5 rows x 25 columns]"
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# examine first few rows \n",
"movies.head() "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Read Multiple Excel Sheets "
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {},
"outputs": [],
"source": [
"import xlrd \n",
"# Import xlsx file and store each sheet in to a df list\n",
"xl_file = pd.ExcelFile(\"../data/data.xls\",)\n",
"# Dictionary comprehension\n",
"dfs = {sheet_name: xl_file.parse(sheet_name) for sheet_name in xl_file.sheet_names}"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {},
"outputs": [],
"source": [
"# Data from each sheet can be accessed via key\n",
"keylist = list(dfs.keys())"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['2020-03-13-03-30',\n",
" '2020-03-13-00-00',\n",
" '2020-03-12-22-00',\n",
" '2020-03-12-21-30',\n",
" '2020-03-12-21-00',\n",
" '2020-03-12-20-00',\n",
" '2020-03-12-18-30',\n",
" '2020-03-12-17-00',\n",
" '2020-03-12-15-30']"
]
},
"execution_count": 35,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Examine the sheet name \n",
"keylist[1:10]"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Province/State | \n",
" Country/Region | \n",
" Last Update | \n",
" Confirmed | \n",
" Deaths | \n",
" Recovered | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" Hubei | \n",
" Mainland China | \n",
" 3/13/2020 06:00 | \n",
" 67786 | \n",
" 3062 | \n",
" 51553 | \n",
"
\n",
" \n",
" 1 | \n",
" Guangdong | \n",
" Mainland China | \n",
" 3/13/2020 06:00 | \n",
" 1356 | \n",
" 8 | \n",
" 1296 | \n",
"
\n",
" \n",
" 2 | \n",
" Zhejiang | \n",
" Mainland China | \n",
" 3/13/2020 06:00 | \n",
" 1215 | \n",
" 1 | \n",
" 1209 | \n",
"
\n",
" \n",
" 3 | \n",
" Shandong | \n",
" Mainland China | \n",
" 3/13/2020 06:00 | \n",
" 760 | \n",
" 7 | \n",
" 739 | \n",
"
\n",
" \n",
" 4 | \n",
" Henan | \n",
" Mainland China | \n",
" 3/13/2020 06:00 | \n",
" 1273 | \n",
" 22 | \n",
" 1249 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 216 | \n",
" NaN | \n",
" Mongolia | \n",
" 3/13/2020 06:00 | \n",
" 1 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 217 | \n",
" NaN | \n",
" St. Barth | \n",
" 3/13/2020 06:00 | \n",
" 1 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 218 | \n",
" NaN | \n",
" St. Vincent Grenadines | \n",
" 3/13/2020 06:00 | \n",
" 1 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 219 | \n",
" NaN | \n",
" Togo | \n",
" 3/13/2020 06:00 | \n",
" 1 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 220 | \n",
" NaN | \n",
" Trinidad and Tobago | \n",
" 3/13/2020 06:00 | \n",
" 1 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
"
\n",
"
221 rows × 6 columns
\n",
"
"
],
"text/plain": [
" Province/State Country/Region Last Update Confirmed \\\n",
"0 Hubei Mainland China 3/13/2020 06:00 67786 \n",
"1 Guangdong Mainland China 3/13/2020 06:00 1356 \n",
"2 Zhejiang Mainland China 3/13/2020 06:00 1215 \n",
"3 Shandong Mainland China 3/13/2020 06:00 760 \n",
"4 Henan Mainland China 3/13/2020 06:00 1273 \n",
".. ... ... ... ... \n",
"216 NaN Mongolia 3/13/2020 06:00 1 \n",
"217 NaN St. Barth 3/13/2020 06:00 1 \n",
"218 NaN St. Vincent Grenadines 3/13/2020 06:00 1 \n",
"219 NaN Togo 3/13/2020 06:00 1 \n",
"220 NaN Trinidad and Tobago 3/13/2020 06:00 1 \n",
"\n",
" Deaths Recovered \n",
"0 3062 51553 \n",
"1 8 1296 \n",
"2 1 1209 \n",
"3 7 739 \n",
"4 22 1249 \n",
".. ... ... \n",
"216 0 0 \n",
"217 0 0 \n",
"218 0 0 \n",
"219 0 0 \n",
"220 0 0 \n",
"\n",
"[221 rows x 6 columns]"
]
},
"execution_count": 36,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Accessing first sheet\n",
"dfs[keylist[0]]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## From URL"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"# read a dataset of Chipotle orders directly from a URL and store the results in a DataFrame \n",
"orders = pd.read_table('http://bit.ly/chiporders')"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" order_id | \n",
" quantity | \n",
" item_name | \n",
" choice_description | \n",
" item_price | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 1 | \n",
" 1 | \n",
" Chips and Fresh Tomato Salsa | \n",
" NaN | \n",
" $2.39 | \n",
"
\n",
" \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" Izze | \n",
" [Clementine] | \n",
" $3.39 | \n",
"
\n",
" \n",
" 2 | \n",
" 1 | \n",
" 1 | \n",
" Nantucket Nectar | \n",
" [Apple] | \n",
" $3.39 | \n",
"
\n",
" \n",
" 3 | \n",
" 1 | \n",
" 1 | \n",
" Chips and Tomatillo-Green Chili Salsa | \n",
" NaN | \n",
" $2.39 | \n",
"
\n",
" \n",
" 4 | \n",
" 2 | \n",
" 2 | \n",
" Chicken Bowl | \n",
" [Tomatillo-Red Chili Salsa (Hot), [Black Beans... | \n",
" $16.98 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" order_id quantity item_name \\\n",
"0 1 1 Chips and Fresh Tomato Salsa \n",
"1 1 1 Izze \n",
"2 1 1 Nantucket Nectar \n",
"3 1 1 Chips and Tomatillo-Green Chili Salsa \n",
"4 2 2 Chicken Bowl \n",
"\n",
" choice_description item_price \n",
"0 NaN $2.39 \n",
"1 [Clementine] $3.39 \n",
"2 [Apple] $3.39 \n",
"3 NaN $2.39 \n",
"4 [Tomatillo-Red Chili Salsa (Hot), [Black Beans... $16.98 "
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# examine the first 5 rows \n",
"orders.head()"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" order_id | \n",
" quantity | \n",
" item_name | \n",
" choice_description | \n",
" item_price | \n",
"
\n",
" \n",
" \n",
" \n",
" 4617 | \n",
" 1833 | \n",
" 1 | \n",
" Steak Burrito | \n",
" [Fresh Tomato Salsa, [Rice, Black Beans, Sour ... | \n",
" $11.75 | \n",
"
\n",
" \n",
" 4618 | \n",
" 1833 | \n",
" 1 | \n",
" Steak Burrito | \n",
" [Fresh Tomato Salsa, [Rice, Sour Cream, Cheese... | \n",
" $11.75 | \n",
"
\n",
" \n",
" 4619 | \n",
" 1834 | \n",
" 1 | \n",
" Chicken Salad Bowl | \n",
" [Fresh Tomato Salsa, [Fajita Vegetables, Pinto... | \n",
" $11.25 | \n",
"
\n",
" \n",
" 4620 | \n",
" 1834 | \n",
" 1 | \n",
" Chicken Salad Bowl | \n",
" [Fresh Tomato Salsa, [Fajita Vegetables, Lettu... | \n",
" $8.75 | \n",
"
\n",
" \n",
" 4621 | \n",
" 1834 | \n",
" 1 | \n",
" Chicken Salad Bowl | \n",
" [Fresh Tomato Salsa, [Fajita Vegetables, Pinto... | \n",
" $8.75 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" order_id quantity item_name \\\n",
"4617 1833 1 Steak Burrito \n",
"4618 1833 1 Steak Burrito \n",
"4619 1834 1 Chicken Salad Bowl \n",
"4620 1834 1 Chicken Salad Bowl \n",
"4621 1834 1 Chicken Salad Bowl \n",
"\n",
" choice_description item_price \n",
"4617 [Fresh Tomato Salsa, [Rice, Black Beans, Sour ... $11.75 \n",
"4618 [Fresh Tomato Salsa, [Rice, Sour Cream, Cheese... $11.75 \n",
"4619 [Fresh Tomato Salsa, [Fajita Vegetables, Pinto... $11.25 \n",
"4620 [Fresh Tomato Salsa, [Fajita Vegetables, Lettu... $8.75 \n",
"4621 [Fresh Tomato Salsa, [Fajita Vegetables, Pinto... $8.75 "
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# examine the last 5 rows \n",
"orders.tail()"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" order_id | \n",
" quantity | \n",
" item_name | \n",
" choice_description | \n",
" item_price | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 1 | \n",
" 1 | \n",
" Chips and Fresh Tomato Salsa | \n",
" NaN | \n",
" $2.39 | \n",
"
\n",
" \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" Izze | \n",
" [Clementine] | \n",
" $3.39 | \n",
"
\n",
" \n",
" 2 | \n",
" 1 | \n",
" 1 | \n",
" Nantucket Nectar | \n",
" [Apple] | \n",
" $3.39 | \n",
"
\n",
" \n",
" 3 | \n",
" 1 | \n",
" 1 | \n",
" Chips and Tomatillo-Green Chili Salsa | \n",
" NaN | \n",
" $2.39 | \n",
"
\n",
" \n",
" 4 | \n",
" 2 | \n",
" 2 | \n",
" Chicken Bowl | \n",
" [Tomatillo-Red Chili Salsa (Hot), [Black Beans... | \n",
" $16.98 | \n",
"
\n",
" \n",
" 5 | \n",
" 3 | \n",
" 1 | \n",
" Chicken Bowl | \n",
" [Fresh Tomato Salsa (Mild), [Rice, Cheese, Sou... | \n",
" $10.98 | \n",
"
\n",
" \n",
" 6 | \n",
" 3 | \n",
" 1 | \n",
" Side of Chips | \n",
" NaN | \n",
" $1.69 | \n",
"
\n",
" \n",
" 7 | \n",
" 4 | \n",
" 1 | \n",
" Steak Burrito | \n",
" [Tomatillo Red Chili Salsa, [Fajita Vegetables... | \n",
" $11.75 | \n",
"
\n",
" \n",
" 8 | \n",
" 4 | \n",
" 1 | \n",
" Steak Soft Tacos | \n",
" [Tomatillo Green Chili Salsa, [Pinto Beans, Ch... | \n",
" $9.25 | \n",
"
\n",
" \n",
" 9 | \n",
" 5 | \n",
" 1 | \n",
" Steak Burrito | \n",
" [Fresh Tomato Salsa, [Rice, Black Beans, Pinto... | \n",
" $9.25 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" order_id quantity item_name \\\n",
"0 1 1 Chips and Fresh Tomato Salsa \n",
"1 1 1 Izze \n",
"2 1 1 Nantucket Nectar \n",
"3 1 1 Chips and Tomatillo-Green Chili Salsa \n",
"4 2 2 Chicken Bowl \n",
"5 3 1 Chicken Bowl \n",
"6 3 1 Side of Chips \n",
"7 4 1 Steak Burrito \n",
"8 4 1 Steak Soft Tacos \n",
"9 5 1 Steak Burrito \n",
"\n",
" choice_description item_price \n",
"0 NaN $2.39 \n",
"1 [Clementine] $3.39 \n",
"2 [Apple] $3.39 \n",
"3 NaN $2.39 \n",
"4 [Tomatillo-Red Chili Salsa (Hot), [Black Beans... $16.98 \n",
"5 [Fresh Tomato Salsa (Mild), [Rice, Cheese, Sou... $10.98 \n",
"6 NaN $1.69 \n",
"7 [Tomatillo Red Chili Salsa, [Fajita Vegetables... $11.75 \n",
"8 [Tomatillo Green Chili Salsa, [Pinto Beans, Ch... $9.25 \n",
"9 [Fresh Tomato Salsa, [Rice, Black Beans, Pinto... $9.25 "
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# examine the first `n` number of rows\n",
"orders.head(10)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" order_id | \n",
" quantity | \n",
" item_name | \n",
" choice_description | \n",
" item_price | \n",
"
\n",
" \n",
" \n",
" \n",
" 4612 | \n",
" 1831 | \n",
" 1 | \n",
" Carnitas Bowl | \n",
" [Fresh Tomato Salsa, [Fajita Vegetables, Rice,... | \n",
" $9.25 | \n",
"
\n",
" \n",
" 4613 | \n",
" 1831 | \n",
" 1 | \n",
" Chips | \n",
" NaN | \n",
" $2.15 | \n",
"
\n",
" \n",
" 4614 | \n",
" 1831 | \n",
" 1 | \n",
" Bottled Water | \n",
" NaN | \n",
" $1.50 | \n",
"
\n",
" \n",
" 4615 | \n",
" 1832 | \n",
" 1 | \n",
" Chicken Soft Tacos | \n",
" [Fresh Tomato Salsa, [Rice, Cheese, Sour Cream]] | \n",
" $8.75 | \n",
"
\n",
" \n",
" 4616 | \n",
" 1832 | \n",
" 1 | \n",
" Chips and Guacamole | \n",
" NaN | \n",
" $4.45 | \n",
"
\n",
" \n",
" 4617 | \n",
" 1833 | \n",
" 1 | \n",
" Steak Burrito | \n",
" [Fresh Tomato Salsa, [Rice, Black Beans, Sour ... | \n",
" $11.75 | \n",
"
\n",
" \n",
" 4618 | \n",
" 1833 | \n",
" 1 | \n",
" Steak Burrito | \n",
" [Fresh Tomato Salsa, [Rice, Sour Cream, Cheese... | \n",
" $11.75 | \n",
"
\n",
" \n",
" 4619 | \n",
" 1834 | \n",
" 1 | \n",
" Chicken Salad Bowl | \n",
" [Fresh Tomato Salsa, [Fajita Vegetables, Pinto... | \n",
" $11.25 | \n",
"
\n",
" \n",
" 4620 | \n",
" 1834 | \n",
" 1 | \n",
" Chicken Salad Bowl | \n",
" [Fresh Tomato Salsa, [Fajita Vegetables, Lettu... | \n",
" $8.75 | \n",
"
\n",
" \n",
" 4621 | \n",
" 1834 | \n",
" 1 | \n",
" Chicken Salad Bowl | \n",
" [Fresh Tomato Salsa, [Fajita Vegetables, Pinto... | \n",
" $8.75 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" order_id quantity item_name \\\n",
"4612 1831 1 Carnitas Bowl \n",
"4613 1831 1 Chips \n",
"4614 1831 1 Bottled Water \n",
"4615 1832 1 Chicken Soft Tacos \n",
"4616 1832 1 Chips and Guacamole \n",
"4617 1833 1 Steak Burrito \n",
"4618 1833 1 Steak Burrito \n",
"4619 1834 1 Chicken Salad Bowl \n",
"4620 1834 1 Chicken Salad Bowl \n",
"4621 1834 1 Chicken Salad Bowl \n",
"\n",
" choice_description item_price \n",
"4612 [Fresh Tomato Salsa, [Fajita Vegetables, Rice,... $9.25 \n",
"4613 NaN $2.15 \n",
"4614 NaN $1.50 \n",
"4615 [Fresh Tomato Salsa, [Rice, Cheese, Sour Cream]] $8.75 \n",
"4616 NaN $4.45 \n",
"4617 [Fresh Tomato Salsa, [Rice, Black Beans, Sour ... $11.75 \n",
"4618 [Fresh Tomato Salsa, [Rice, Sour Cream, Cheese... $11.75 \n",
"4619 [Fresh Tomato Salsa, [Fajita Vegetables, Pinto... $11.25 \n",
"4620 [Fresh Tomato Salsa, [Fajita Vegetables, Lettu... $8.75 \n",
"4621 [Fresh Tomato Salsa, [Fajita Vegetables, Pinto... $8.75 "
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# examine the last `n` number of rows\n",
"orders.tail(10)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Modify Dataset"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"# read a dataset of movie reviewers (modifying the default parameter values for read_table)\n",
"users = pd.read_table('http://bit.ly//movieusers')"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" 1|24|M|technician|85711 | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 2|53|F|other|94043 | \n",
"
\n",
" \n",
" 1 | \n",
" 3|23|M|writer|32067 | \n",
"
\n",
" \n",
" 2 | \n",
" 4|24|M|technician|43537 | \n",
"
\n",
" \n",
" 3 | \n",
" 5|33|F|other|15213 | \n",
"
\n",
" \n",
" 4 | \n",
" 6|42|M|executive|98101 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" 1|24|M|technician|85711\n",
"0 2|53|F|other|94043\n",
"1 3|23|M|writer|32067\n",
"2 4|24|M|technician|43537\n",
"3 5|33|F|other|15213\n",
"4 6|42|M|executive|98101"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# examine the first 5 rows \n",
"users.head()"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"# DataFrame looks ugly. let's modify the default parameter for read_table \n",
"user_cols = ['user_id', 'age', 'gender', 'occupation', 'zip_code']\n",
"users = pd.read_table('http://bit.ly//movieusers', sep='|' , header=None, names=user_cols)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" user_id | \n",
" age | \n",
" gender | \n",
" occupation | \n",
" zip_code | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 1 | \n",
" 24 | \n",
" M | \n",
" technician | \n",
" 85711 | \n",
"
\n",
" \n",
" 1 | \n",
" 2 | \n",
" 53 | \n",
" F | \n",
" other | \n",
" 94043 | \n",
"
\n",
" \n",
" 2 | \n",
" 3 | \n",
" 23 | \n",
" M | \n",
" writer | \n",
" 32067 | \n",
"
\n",
" \n",
" 3 | \n",
" 4 | \n",
" 24 | \n",
" M | \n",
" technician | \n",
" 43537 | \n",
"
\n",
" \n",
" 4 | \n",
" 5 | \n",
" 33 | \n",
" F | \n",
" other | \n",
" 15213 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" user_id age gender occupation zip_code\n",
"0 1 24 M technician 85711\n",
"1 2 53 F other 94043\n",
"2 3 23 M writer 32067\n",
"3 4 24 M technician 43537\n",
"4 5 33 F other 15213"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# now take a look at modified dataset\n",
"users.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Read Biological Data(.txt)"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [],
"source": [
"# read text/csv data into pandas \n",
"chrom = pd.read_csv(\"../data/Encode_HMM_data.txt\", delimiter=\"\\t\", header=None)"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" 0 | \n",
" 1 | \n",
" 2 | \n",
" 3 | \n",
" 4 | \n",
" 5 | \n",
" 6 | \n",
" 7 | \n",
" 8 | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" chr1 | \n",
" 10000 | \n",
" 10600 | \n",
" 15_Repetitive/CNV | \n",
" 0 | \n",
" . | \n",
" 10000 | \n",
" 10600 | \n",
" 245,245,245 | \n",
"
\n",
" \n",
" 1 | \n",
" chr1 | \n",
" 10600 | \n",
" 11137 | \n",
" 13_Heterochrom/lo | \n",
" 0 | \n",
" . | \n",
" 10600 | \n",
" 11137 | \n",
" 245,245,245 | \n",
"
\n",
" \n",
" 2 | \n",
" chr1 | \n",
" 11137 | \n",
" 11737 | \n",
" 8_Insulator | \n",
" 0 | \n",
" . | \n",
" 11137 | \n",
" 11737 | \n",
" 10,190,254 | \n",
"
\n",
" \n",
" 3 | \n",
" chr1 | \n",
" 11737 | \n",
" 11937 | \n",
" 11_Weak_Txn | \n",
" 0 | \n",
" . | \n",
" 11737 | \n",
" 11937 | \n",
" 153,255,102 | \n",
"
\n",
" \n",
" 4 | \n",
" chr1 | \n",
" 11937 | \n",
" 12137 | \n",
" 7_Weak_Enhancer | \n",
" 0 | \n",
" . | \n",
" 11937 | \n",
" 12137 | \n",
" 255,252,4 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" 0 1 2 3 4 5 6 7 8\n",
"0 chr1 10000 10600 15_Repetitive/CNV 0 . 10000 10600 245,245,245\n",
"1 chr1 10600 11137 13_Heterochrom/lo 0 . 10600 11137 245,245,245\n",
"2 chr1 11137 11737 8_Insulator 0 . 11137 11737 10,190,254\n",
"3 chr1 11737 11937 11_Weak_Txn 0 . 11737 11937 153,255,102\n",
"4 chr1 11937 12137 7_Weak_Enhancer 0 . 11937 12137 255,252,4"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Examine first few rows \n",
"chrom.head()"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [],
"source": [
"# it's not much better to see. so we have to modify this dataset\n",
"cols_name = ['chrom', 'start', 'stop', 'type']\n",
"chrom = pd.read_csv(\"../data/Encode_HMM_data.txt\", delimiter=\"\\t\", header=None, names=cols_name)"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" chrom | \n",
" start | \n",
" stop | \n",
" type | \n",
"
\n",
" \n",
" \n",
" \n",
" chr1 | \n",
" 10000 | \n",
" 10600 | \n",
" 15_Repetitive/CNV | \n",
" 0 | \n",
" . | \n",
" 10000 | \n",
" 10600 | \n",
" 245,245,245 | \n",
"
\n",
" \n",
" 10600 | \n",
" 11137 | \n",
" 13_Heterochrom/lo | \n",
" 0 | \n",
" . | \n",
" 10600 | \n",
" 11137 | \n",
" 245,245,245 | \n",
"
\n",
" \n",
" 11137 | \n",
" 11737 | \n",
" 8_Insulator | \n",
" 0 | \n",
" . | \n",
" 11137 | \n",
" 11737 | \n",
" 10,190,254 | \n",
"
\n",
" \n",
" 11737 | \n",
" 11937 | \n",
" 11_Weak_Txn | \n",
" 0 | \n",
" . | \n",
" 11737 | \n",
" 11937 | \n",
" 153,255,102 | \n",
"
\n",
" \n",
" 11937 | \n",
" 12137 | \n",
" 7_Weak_Enhancer | \n",
" 0 | \n",
" . | \n",
" 11937 | \n",
" 12137 | \n",
" 255,252,4 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" chrom start stop type\n",
"chr1 10000 10600 15_Repetitive/CNV 0 . 10000 10600 245,245,245\n",
" 10600 11137 13_Heterochrom/lo 0 . 10600 11137 245,245,245\n",
" 11137 11737 8_Insulator 0 . 11137 11737 10,190,254\n",
" 11737 11937 11_Weak_Txn 0 . 11737 11937 153,255,102\n",
" 11937 12137 7_Weak_Enhancer 0 . 11937 12137 255,252,4"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# now examine first few rows \n",
"chrom.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Read Biological Data(.tsv)"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [],
"source": [
"pokemon = pd.read_csv(\"../data/pokemon.tsv\", sep=\"\\t\")"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Number | \n",
" Name | \n",
" Type_1 | \n",
" Type_2 | \n",
" Total | \n",
" HP | \n",
" Attack | \n",
" Defense | \n",
" Sp_Atk | \n",
" Sp_Def | \n",
" ... | \n",
" Color | \n",
" hasGender | \n",
" Pr_Male | \n",
" Egg_Group_1 | \n",
" Egg_Group_2 | \n",
" hasMegaEvolution | \n",
" Height_m | \n",
" Weight_kg | \n",
" Catch_Rate | \n",
" Body_Style | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 1 | \n",
" Bulbasaur | \n",
" Grass | \n",
" Poison | \n",
" 318 | \n",
" 45 | \n",
" 49 | \n",
" 49 | \n",
" 65 | \n",
" 65 | \n",
" ... | \n",
" Green | \n",
" True | \n",
" 0.875 | \n",
" Monster | \n",
" Grass | \n",
" False | \n",
" 0.71 | \n",
" 6.9 | \n",
" 45 | \n",
" quadruped | \n",
"
\n",
" \n",
" 1 | \n",
" 2 | \n",
" Ivysaur | \n",
" Grass | \n",
" Poison | \n",
" 405 | \n",
" 60 | \n",
" 62 | \n",
" 63 | \n",
" 80 | \n",
" 80 | \n",
" ... | \n",
" Green | \n",
" True | \n",
" 0.875 | \n",
" Monster | \n",
" Grass | \n",
" False | \n",
" 0.99 | \n",
" 13.0 | \n",
" 45 | \n",
" quadruped | \n",
"
\n",
" \n",
" 2 | \n",
" 3 | \n",
" Venusaur | \n",
" Grass | \n",
" Poison | \n",
" 525 | \n",
" 80 | \n",
" 82 | \n",
" 83 | \n",
" 100 | \n",
" 100 | \n",
" ... | \n",
" Green | \n",
" True | \n",
" 0.875 | \n",
" Monster | \n",
" Grass | \n",
" True | \n",
" 2.01 | \n",
" 100.0 | \n",
" 45 | \n",
" quadruped | \n",
"
\n",
" \n",
" 3 | \n",
" 4 | \n",
" Charmander | \n",
" Fire | \n",
" NaN | \n",
" 309 | \n",
" 39 | \n",
" 52 | \n",
" 43 | \n",
" 60 | \n",
" 50 | \n",
" ... | \n",
" Red | \n",
" True | \n",
" 0.875 | \n",
" Monster | \n",
" Dragon | \n",
" False | \n",
" 0.61 | \n",
" 8.5 | \n",
" 45 | \n",
" bipedal_tailed | \n",
"
\n",
" \n",
" 4 | \n",
" 5 | \n",
" Charmeleon | \n",
" Fire | \n",
" NaN | \n",
" 405 | \n",
" 58 | \n",
" 64 | \n",
" 58 | \n",
" 80 | \n",
" 65 | \n",
" ... | \n",
" Red | \n",
" True | \n",
" 0.875 | \n",
" Monster | \n",
" Dragon | \n",
" False | \n",
" 1.09 | \n",
" 19.0 | \n",
" 45 | \n",
" bipedal_tailed | \n",
"
\n",
" \n",
"
\n",
"
5 rows × 23 columns
\n",
"
"
],
"text/plain": [
" Number Name Type_1 Type_2 Total HP Attack Defense Sp_Atk \\\n",
"0 1 Bulbasaur Grass Poison 318 45 49 49 65 \n",
"1 2 Ivysaur Grass Poison 405 60 62 63 80 \n",
"2 3 Venusaur Grass Poison 525 80 82 83 100 \n",
"3 4 Charmander Fire NaN 309 39 52 43 60 \n",
"4 5 Charmeleon Fire NaN 405 58 64 58 80 \n",
"\n",
" Sp_Def ... Color hasGender Pr_Male Egg_Group_1 Egg_Group_2 \\\n",
"0 65 ... Green True 0.875 Monster Grass \n",
"1 80 ... Green True 0.875 Monster Grass \n",
"2 100 ... Green True 0.875 Monster Grass \n",
"3 50 ... Red True 0.875 Monster Dragon \n",
"4 65 ... Red True 0.875 Monster Dragon \n",
"\n",
" hasMegaEvolution Height_m Weight_kg Catch_Rate Body_Style \n",
"0 False 0.71 6.9 45 quadruped \n",
"1 False 0.99 13.0 45 quadruped \n",
"2 True 2.01 100.0 45 quadruped \n",
"3 False 0.61 8.5 45 bipedal_tailed \n",
"4 False 1.09 19.0 45 bipedal_tailed \n",
"\n",
"[5 rows x 23 columns]"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pokemon.head() "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Read HTML Data"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {},
"outputs": [],
"source": [
"# Read HTML data from web \n",
"url = 'https://www.fdic.gov/bank/individual/failed/banklist.html'\n",
"data = pd.io.html.read_html(url)"
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"list"
]
},
"execution_count": 45,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Check type \n",
"type(data)"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Bank Name | \n",
" City | \n",
" ST | \n",
" CERT | \n",
" Acquiring Institution | \n",
" Closing Date | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" The First State Bank | \n",
" Barboursville | \n",
" WV | \n",
" 14361 | \n",
" MVB Bank, Inc. | \n",
" April 3, 2020 | \n",
"
\n",
" \n",
" 1 | \n",
" Ericson State Bank | \n",
" Ericson | \n",
" NE | \n",
" 18265 | \n",
" Farmers and Merchants Bank | \n",
" February 14, 2020 | \n",
"
\n",
" \n",
" 2 | \n",
" City National Bank of New Jersey | \n",
" Newark | \n",
" NJ | \n",
" 21111 | \n",
" Industrial Bank | \n",
" November 1, 2019 | \n",
"
\n",
" \n",
" 3 | \n",
" Resolute Bank | \n",
" Maumee | \n",
" OH | \n",
" 58317 | \n",
" Buckeye State Bank | \n",
" October 25, 2019 | \n",
"
\n",
" \n",
" 4 | \n",
" Louisa Community Bank | \n",
" Louisa | \n",
" KY | \n",
" 58112 | \n",
" Kentucky Farmers Bank Corporation | \n",
" October 25, 2019 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 556 | \n",
" Superior Bank, FSB | \n",
" Hinsdale | \n",
" IL | \n",
" 32646 | \n",
" Superior Federal, FSB | \n",
" July 27, 2001 | \n",
"
\n",
" \n",
" 557 | \n",
" Malta National Bank | \n",
" Malta | \n",
" OH | \n",
" 6629 | \n",
" North Valley Bank | \n",
" May 3, 2001 | \n",
"
\n",
" \n",
" 558 | \n",
" First Alliance Bank & Trust Co. | \n",
" Manchester | \n",
" NH | \n",
" 34264 | \n",
" Southern New Hampshire Bank & Trust | \n",
" February 2, 2001 | \n",
"
\n",
" \n",
" 559 | \n",
" National State Bank of Metropolis | \n",
" Metropolis | \n",
" IL | \n",
" 3815 | \n",
" Banterra Bank of Marion | \n",
" December 14, 2000 | \n",
"
\n",
" \n",
" 560 | \n",
" Bank of Honolulu | \n",
" Honolulu | \n",
" HI | \n",
" 21029 | \n",
" Bank of the Orient | \n",
" October 13, 2000 | \n",
"
\n",
" \n",
"
\n",
"
561 rows × 6 columns
\n",
"
"
],
"text/plain": [
" Bank Name City ST CERT \\\n",
"0 The First State Bank Barboursville WV 14361 \n",
"1 Ericson State Bank Ericson NE 18265 \n",
"2 City National Bank of New Jersey Newark NJ 21111 \n",
"3 Resolute Bank Maumee OH 58317 \n",
"4 Louisa Community Bank Louisa KY 58112 \n",
".. ... ... .. ... \n",
"556 Superior Bank, FSB Hinsdale IL 32646 \n",
"557 Malta National Bank Malta OH 6629 \n",
"558 First Alliance Bank & Trust Co. Manchester NH 34264 \n",
"559 National State Bank of Metropolis Metropolis IL 3815 \n",
"560 Bank of Honolulu Honolulu HI 21029 \n",
"\n",
" Acquiring Institution Closing Date \n",
"0 MVB Bank, Inc. April 3, 2020 \n",
"1 Farmers and Merchants Bank February 14, 2020 \n",
"2 Industrial Bank November 1, 2019 \n",
"3 Buckeye State Bank October 25, 2019 \n",
"4 Kentucky Farmers Bank Corporation October 25, 2019 \n",
".. ... ... \n",
"556 Superior Federal, FSB July 27, 2001 \n",
"557 North Valley Bank May 3, 2001 \n",
"558 Southern New Hampshire Bank & Trust February 2, 2001 \n",
"559 Banterra Bank of Marion December 14, 2000 \n",
"560 Bank of the Orient October 13, 2000 \n",
"\n",
"[561 rows x 6 columns]"
]
},
"execution_count": 46,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# access data \n",
"data[0]"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.4"
},
"latex_envs": {
"LaTeX_envs_menu_present": true,
"autoclose": false,
"autocomplete": true,
"bibliofile": "biblio.bib",
"cite_by": "apalike",
"current_citInitial": 1,
"eqLabelWithNumbers": true,
"eqNumInitial": 1,
"hotkeys": {
"equation": "Ctrl-E",
"itemize": "Ctrl-I"
},
"labels_anchors": false,
"latex_user_defs": false,
"report_style_numbering": false,
"user_envs_cfg": false
},
"toc": {
"base_numbering": 1,
"nav_menu": {},
"number_sections": true,
"sideBar": true,
"skip_h1_title": false,
"title_cell": "Table of Contents",
"title_sidebar": "Contents",
"toc_cell": true,
"toc_position": {},
"toc_section_display": true,
"toc_window_display": false
}
},
"nbformat": 4,
"nbformat_minor": 2
}